﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WorkflowFramework;

namespace WorkflowFramework
{
    /// <summary>
    /// 流程执行器接口
    /// </summary>
    public interface IWorkFlowExecutor
    {
        List<IFlowStep> Steps { get; }
        Task ExecuteFlowAsync(CancellationToken cancellationToken = default);
        Task ProcessUserCommandAsync(WorkFlowCommand command, CancellationToken cancellationToken = default);
        bool IsPaused { get; }
        bool IsCompleted { get; }
        string CurrentFailedStep { get; }
    }
}
